草庐IT

java - JAXB - 复合模式和@XmlValue

全部标签

java - 如何在一个 java 应用程序中处理不同版本的 xsd 文件?

事实在我的java应用程序中,我必须同时处理具有不同架构版本(xsd文件)的XML文件。XML文件的内容在不同版本之间只发生了一点变化,所以我想主要使用相同的代码来处理它,只是根据所用模式的版本做一些案例区分。当前解决方案现在我正在使用SAX解析器和我自己的ContentHandler解析XML文件,忽略模式版本,只检查是否存在我需要处理的标签。可能的选择我真的很想使用JAXB来生成用于解析XML文件的类。这样我就可以从我的Java代码中删除所有硬编码的字符串(常量)并改为处理生成的类。问题如何使用JAXB以统一的方式处理不同的模式版本?有更好的解决方案吗?进度我将模式版本编译为不同的

xml - 基于属性值的条件(XML 模式)

是否可以在XMLSchema中定义基于属性值的条件?例如,当test@attrib="one"时,我希望允许并强制使用one-element或者当test@attrib="two",我希望双元素被允许和强制。例如,有效文件是:...或...错误的文件:...或...在XSD中可以吗? 最佳答案 不属于同一类型。您需要为每个不同的选项定义不同的类型。更新要在您的模式中重用类型定义:这将验证:sadassadassadassadas和sadassadassadassadas 关于xml-基于

xml - 为什么 "Namespace ' http ://www. w3.org/XML/1998/namespace' 在此模式中不可引用。”?

查看来自http://xmpp.org/schemas/的stanzaerror.xsd在VisualStudio2010中,我在以下行收到警告...警告:Namespace'http://www.w3.org/XML/1998/namespace'isnotavailabletobereferencedinthisschema.这似乎是一个非常基本的XML警告-有什么想法吗? 最佳答案 仅仅因为您不需要为实例文档声明xml命名空间,并不意味着模式也是如此。我知道这看起来有点奇怪,但确实如此。您需要定义xml:lang属性,并且需要

xml - cvc 模式有效 : Value 'A' is not facet-valid with respect to pattern '^[A-Za-z]?$' for type 'whatever'

这是验证失败的特定XML标记:A该标签的XSD:我得到的错误:cvc-pattern-valid:Value'A'isnotfacet-validwithrespecttopattern'^[A-Za-z]?$'fortype'MiddleInitial'.我正在使用的验证器:http://tools.decisionsoft.com/schemaValidate/正则表达式看起来不错。^匹配开头、$、结尾、?是字母A-Z或a-z的零次或一次。有什么想法吗? 最佳答案 来自w3规范RegularExpressions(Appendi

xml - 如何使属性在 xml 模式中唯一?

我想让元素的属性像主键一样唯一。怎么做到的? 最佳答案 像这样的东西应该可以工作:基本上,您可以使用定义“唯一性”约束元素并定义此唯一性应适用于哪些XPath。参见W3Schools的entryon了解更多信息。 关于xml-如何使属性在xml模式中唯一?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3387133/

xml - 如何将 xsi 模式定位添加到根 c# 对象 XmlSerializer

我正在使用XmlSerializer创建一个表示XML文件的对象,现在我想向我的xml文件的根元素添加一个模式定位。我可以添加如下命名空间XmlSerializerserializer=newXmlSerializer(typeof(MyClass));System.IO.FileStreamfs=newFileStream(@"C:\test.xml",FileMode.Create);TextWriterwriter=newStreamWriter(fs,newUTF8Encoding());XmlSerializerNamespacesns=newXmlSerializerNam

xml - 如何验证 xml 模式中的电子邮件 ID

您好,我已经创建了一个架构来检查电子邮件ID。它可以验证电子邮件ID是否为abc@def.com和adbc@def.co.in以及abc@def.co.in.pune但我只想验证abc@def.com和adbc@def.co.in因为我认为电子邮件在@符号后最多可以有2个点所以第三个将是无效的电子邮件ID那么如何使用模式验证电子邮件ID下面是架构谢谢苏尼尔·库马尔·萨胡 最佳答案 您需要定义一个模式来匹配有效的电子邮件。模式是使用正则表达式语法定义的。一旦您用适当的模式定义了一个简单类型(基于xs:string),您就可以将它用于您

xml - 如何在 XML 模式中实现互斥属性?

我试图让两个XML属性相互排斥。如何创建XSD模式来捕获这种情况?我想要其中之一但不是 最佳答案 你不能用属性做,但你可以用子元素...这样你就可以拥有...1或者...somethingelse 关于xml-如何在XML模式中实现互斥属性?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/386713/

xml - 如何在 emacs 中为所有文件和所有主要模式启用 flyspell 模式?

如何让flyspell-mode在Emacs启动后自动用于每个文件和每个主要模式?还有,有没有不把XML标签标记为拼写错误的XML字典? 最佳答案 这个问题的答案对我有用:Howtoenableautomaticspellcheckbydefault?此外,与其他先前的答案相比,它似乎更笼统。将以下行添加到您的.emacs或init.el。(add-hook'text-mode-hook'flyspell-mode)(add-hook'prog-mode-hook'flyspell-prog-mode)

xml - Java JaxB - 对象到 XML 字符串到对象

我在Netbeans7.1.2中使用JaxB时遇到问题。我已经使用JaxB(新JaxB绑定(bind))从模式自动生成了我的类。我正在创建将使用Marshaller序列化为XML字符串的对象,然后从XML字符串返回到新的对象实例。但是,我得到以下异常:javax.xml.bind.UnmarshalException:unexpectedelement(uri:"http://www.somewhere.com/some/path",local:"MyQueryComplexTypeQuery").Expectedelementsare(none)XML字符串的编码/序列化工作正常。导